// fill() 方法用一个固定值填充一个数组中从起始索引（默认为 0）到终止索引（默认为 array.length）内的全部元素。它返回修改后的数组。
// 接受三个参数:vlaue(用来填充数组的元素值)，start(起始索引，默认是0),end(终止索引，默认数组长度)
// -------------------- 普通用法 -------------------- 
console.log([1, 2, 3].fill(4)); // [4, 4, 4]
console.log([1, 2, 3].fill(4, 1)); // [1, 4, 4]
console.log([1, 2, 3].fill(4, 1, 2)); // [1, 4, 3]
console.log([1, 2, 3].fill(4, 1, 1)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 3)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, -3, -2)); // [4, 2, 3]
console.log([1, 2, 3].fill(4, NaN, NaN)); // [1, 2, 3]  NaN 是一个非数字值，当用作索引时，会被转换为0
console.log([1, 2, 3].fill(4, 3, 5)); // [1, 2, 3]  终止索引大于数组长度，不进行任何操作
console.log(Array(3).fill(4)); // [4, 4, 4]  首先创建了一个长度为3的空数组，然后用4填充整个数组


// 一个简单的对象，被数组的每个空槽所引用  引用类型
const arr = Array(3).fill({}); // [{}, {}, {}]
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]